package org.wishwork.api.order.upload.request;

import lombok.*;

import java.math.BigDecimal;

/**
 * @description: 商品明细
 * @author: WangYX
 * @create: 2022-04-13 16:06
 * @Version: 1.0.0
 **/
@Builder
@Getter
@ToString
@EqualsAndHashCode
public class Item {

    /**
     * ERP内商品编码 长度 <=40 PS: 设置预售标识订单，修改商品编码=商品编码+预售（或==）+预计交货日期（可选）
     * 比如: "A321232" 修改为 "A321232预售2015-12-12" 或者 "A321232" 修改为 "A321232==2015-12-12"
     * 当商品被购买后ERP将自动识别为预售订单并更正商品编码为正确商品编码
     */
    @NonNull
    private String skuId;

    /**
     * 店铺商品编码 长度<=128
     */
    @NonNull
    private String shopSkuId;

    /**
     * ERP内款号/货号 长度<=40
     */
    private String iId;

    /**
     * 图片地址 长度<=300
     */
    private String pic;

    /**
     * 商品属性；长度<=100
     */
    private String propertiesValue;

    /**
     * 成交总额，保留两位小数，单位（元）；备注：可能存在人工改价
     */
    @NonNull
    private BigDecimal amount;

    /**
     * 原价，保留两位小数，单位（元）
     */
    @NonNull
    private BigDecimal basePrice;

    /**
     * 数量
     */
    @NonNull
    private Integer qty;

    /**
     * 商品名称 长度<=100
     */
    @NonNull
    private Integer name;

    /**
     * PS：值存在，会自动将订单转异常,success 状态的，发货将不发该商品，不支持单商品发部分;
     * 退款状态:可选 退款中=waiting; 退款成功=success,closed=退款关闭:发货前可更新
     */
    private String refundStatus;

    /**
     * 商家系统订单商品明细主键,为了拆单合单时溯源，最长不超过 50,保持唯一
     */
    @NonNull
    private String outerOiId;

    /**
     * 订单明细备注
     */
    private String remark;
}
